---
title: lefthook
description: Suorita Ultracite automaattisesti vaiheistetuille Git-tiedostoillesi lefthookin avulla
---

Ultracite tarjoaa saumattoman integraation [lefthook](https://lefthook.dev/), nopean ja tehokkaan Git-hookkien hallinnan. Tämä integraatio asettaa automaattisesti pre-commit-koukut varmistaakseen, että koodisi on oikein muotoiltu ennen jokaista committia.

## Mikä on lefthook?

lefthook on nopea natiivinen Git-hookkien hallintaohjelma Node.js- ja Go-projekteille. Se on suunniteltu olemaan yksinkertainen, nopea ja tehokas, ja sen avulla voit hallita Git-hookkeja tiimisi kesken konfiguraatiotiedostoilla, jotka voidaan sitouttaa repositorioon.

## Miten Ultracite käyttää lefthookia

Kun alustat Ultraciten projektissasi, se voi automaattisesti konfiguroida lefthookin suorittamaan koodin muotoilun ennen jokaista committia. Tämä varmistaa, että:

- Kaikki commitattu koodi noudattaa yhtenäisiä muotoilustandardeja
- Koodin laadun tarkastukset otetaan käyttöön automaattisesti
- Tiimin jäsenien ei tarvitse muistaa muotoilla koodia manuaalisesti
- Repositoriosi säilyy siistinä ja yhdenmukaisena koodityyliltään

## Pre-commit-koukun toiminta

Ultraciten lefthook-integraatio luo pre-commit-koukun, joka suorittaa seuraavan komennon:

```bash
npx ultracite fix
```

Tämä komento:
- Suorittaa Biomen linterin ja muotoilijan koodikannassasi
- Korjaa muotoiluongelmia automaattisesti, kun se on mahdollista
- Varmistaa, että kaikki vaiheistetut tiedostot täyttävät projektisi koodistandardit
- Estää commitit, jotka toisisivat mukaan muotoilu-epäjohdonmukaisuuksia

## Automaattinen asennus

Alustusprosessin aikana (`ultracite init`), jos valitset lefthook-vaihtoehdon, Ultracite:

1. **Asentaa lefthookin**: Lisää lefthookin projektisi kehitysriippuvuudeksi
2. **Alustaa lefthookin**: Suorittaa `lefthook install` asentaakseen Git-hookit
3. **Luo konfiguraation**: Luo `lefthook.yml`-tiedoston muotoilukomennolla
4. **Käsittelee olemassa olevat asetukset**: Jos sinulla on jo lefthook konfiguroituna, se päivittää olemassa olevaa määritystäsi sen sijaan, että korvaisi sen

## Integraation yksityiskohdat

Lefthook-integraatio sisältää useita älykkäitä ominaisuuksia:

### Riippuvuuksien hallinta
- Asentaa lefthookin automaattisesti dev-riippuvuudeksi käyttämällä projektisi paketinhallintaa
- Käyttää sopivaa paketinhallinnan komentoa (`npm install -D`, `yarn add -D`, `pnpm add -D`, jne.)
- Suorittaa `lefthook install` alustamaan Git-hookit

### Konfiguraation hallinta
- **Uudet projektit**: Luo uuden `lefthook.yml`-tiedoston, joka sisältää ultracite fix -komennon
- **Olemassa olevat projektit**: Lisää Ultraciten komennon olemassa olevaan lefthook-määritykseen säilyttäen muut mahdollisesti konfiguroidut hookit

### Tiedostorakenne
Integraatio luo tai muokkaa:
```
lefthook.yml    # Contains the formatting command configuration
```

## Hyödyt

- **Tiimin yhdenmukaisuus**: Jokainen tiimin jäsen saa saman muotoilun sovellettuna automaattisesti
- **Ei konfigurointia**: Toimii suoraan oletusasetuksilla
- **Nopea suorituskyky**: lefthook on kirjoitettu Go:lla ja on erittäin nopea
- **Joustavuus**: Helppo laajentaa lisäkomennoilla ja hookeilla
- **Monialustainen**: Toimii johdonmukaisesti eri käyttöjärjestelmissä

## Työnkulun integraatio

Lefthook-integraatio sulautuu saumattomasti kehitystyön työnkulkuun:

1. **Kehittäjä tekee muutoksia** kooditiedostoihin
2. **Lisää tiedostot vaiheistukseen** komennolla `git add`
3. **Yrittää tehdä commitin** komennolla `git commit`
4. **lefthook käynnistää** pre-commit-koukun automaattisesti
5. **Ultracite suorittaa** ja muotoilee vaiheistetut tiedostot
6. **Commit etenee**, jos muotoilu onnistuu, tai **epäonnistuu**, jos ilmenee ongelmia joita ei voitu korjata automaattisesti

## Mukauttaminen

Vaikka Ultracite asettaa järkevät oletusasetukset, voit mukauttaa toimintaa:
- Muokkaa `lefthook.yml`-tiedostoa lisätäksesi muita komentoja tai hookkeja
- Konfiguroi Biomen asetuksia muuttaaksesi muotoilusääntöjä
- Lisää muita pre-commit-tarkistuksia Ultraciten muotoilun oheen
- Hyödynnä lefthookin tehokasta rinnakkaissuoritusta ja ehdollista logiikkaa

## Vianmääritys

### Koukku ei käynnisty
Jos pre-commit-koukku ei suoritu:
- Varmista, että lefthook on asennettu: `npm ls lefthook`
- Tarkista, että `lefthook.yml` on olemassa ja sisältää ultracite-komennon
- Varmista, että Git-hookit ovat käytössä repositoriossasi
- Suorita `lefthook install` uudelleen asentaaksesi hookit

### Oikeusongelmat
lefthook hoitaa Git-hookkien oikeudet automaattisesti, mutta jos kohtaat ongelmia:
- Kokeile suorittaa `lefthook install` uudelleen
- Tarkista, että Git-konfiguraatiosi sallii hookit

### Hookkien ohittaminen
Harvinaisissa tilanteissa, joissa sinun täytyy ohittaa pre-commit-koukku:
```bash
git commit --no-verify
```

Käytä tätä säästeliäästi, sillä se ohittaa automaattisen muotoilun, joka pitää koodikannan yhtenäisenä.

## Konfiguraatioesimerkki

Tässä esimerkki `lefthook.yml`-konfiguraatiosta:

```yaml
pre-commit:
  jobs:
    - run: npx ultracite fix
      glob: 
        - "*.js"
        - "*.jsx"
        - "*.ts"
        - "*.tsx"
        - "*.json"
        - "*.jsonc"
        - "*.css"
      stage_fixed: true
```

Tämä konfiguraatio:
- Suoritetaan vain JavaScript-, TypeScript-, JSON- ja CSS-tiedostoille
- Lisää automaattisesti vaiheistukseen tiedostot, jotka formatteri korjasi
- Käyttää tehokasta `jobs`-syntaksia paremman suorituskyvyn saavuttamiseksi

Voit laajentaa tätä määritystä sisällyttämään lisätöitä (jobs):

```yaml
pre-commit:
  jobs:
    - run: npx ultracite fix
      glob: 
        - "*.js"
        - "*.jsx"
        - "*.ts"
        - "*.tsx"
        - "*.json"
        - "*.jsonc"
        - "*.css"
      stage_fixed: true
    - run: npm test
      glob: "*.{js,ts}"
    - run: tsc --noEmit
      glob: "*.{ts,tsx}"
```